package org.lboot.starter.test.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import io.swagger.v3.oas.models.servers.Server;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.List;
/**
 * @author  : Kindear
 * @date : 2021-11-15
 * Knife4j 文档配置 基于 SpringFox
 */
@Configuration
public class StarterDocConfig {

    /**
     * 配置 OpenAPI 文档元信息
     */
    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                // 文档基本信息
                .info(new Info()
                        .title("系统API文档")
                        .description("基于Jakarta EE的RESTful API文档，不依赖Springfox")
                        .version("2.0.0")
                        .contact(new Contact()
                                .name("技术团队")
                                .email("tech@example.com")
                                .url("https://example.com"))
                        .license(new License()
                                .name("MIT License")
                                .url("https://opensource.org/licenses/MIT")))
                // 服务器环境配置（开发/测试/生产）
                .servers(List.of(
                        new Server().url("http://localhost:8080").description("开发环境"),
                        new Server().url("http://test.example.com").description("测试环境"),
                        new Server().url("http://api.example.com").description("生产环境")
                ));
    }

    /**
     * 如需配置分组，可创建多个 OpenAPI Bean 并通过 @Profile 或 @Qualifier 区分
     */
//    @Bean("adminApi")
//    public OpenAPI adminOpenAPI() {
//        return new OpenAPI()
//                .info(new Info()
//                        .title("管理员API文档")
//                        .description("管理员专用接口文档")
//                        .version("2.0.0"))
//                .servers(List.of(
//                        new Server().url("http://localhost:8080/admin").description("管理员接口-开发环境")
//                ));
//    }
}
